home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume90 / aplictns / plplot26 / part06 < prev    next >
Encoding:
Internet Message Format  |  1990-01-14  |  46.6 KB

  1. Path: xanth!cs.odu.edu!Amiga-Request
  2. From: Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator)
  3. Newsgroups: comp.sources.amiga
  4. Subject: v90i007: plplot 2.6 - C library for making scientific plots, Part06/12
  5. Message-ID: <10979@xanth.cs.odu.edu>
  6. Date: 14 Jan 90 23:29:27 GMT
  7. Sender: tadguy@cs.odu.edu
  8. Reply-To: Anthony M. Richardson <amr@dukee.egr.duke.edu>
  9. Lines: 1276
  10. Approved: tadguy@cs.odu.edu (Tad Guy)
  11.  
  12. Submitted-by: Anthony M. Richardson <amr@dukee.egr.duke.edu>
  13. Posting-number: Volume 90, Issue 007
  14. Archive-name: applications/plplot-2.6/part06
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then unpack
  18. # it by saving it into a file and typing "sh file".  To overwrite existing
  19. # files, type "sh file -c".  You can also feed this as standard input via
  20. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  21. # will see the following message at the end:
  22. #        "End of archive 6 (of 12)."
  23. # Contents:  Amiga/Amiga.c drivers/postscript.c fonts/plstnd.fnt.uu
  24. #   fonts/plxtnd.idx.uu unix/postscript.c
  25. # Wrapped by tadguy@xanth on Sun Jan 14 18:11:37 1990
  26. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  27. if test -f 'Amiga/Amiga.c' -a "${1}" != "-c" ; then 
  28.   echo shar: Will not clobber existing file \"'Amiga/Amiga.c'\"
  29. else
  30. echo shar: Extracting \"'Amiga/Amiga.c'\" \(6991 characters\)
  31. sed "s/^X//" >'Amiga/Amiga.c' <<'END_OF_FILE'
  32. X /* Amiga PLPLOT window routines. */
  33. X
  34. X#include "plplot.h"
  35. X#include "plamiga.h"
  36. X#include <stdio.h>
  37. X#ifdef AZTEC_C
  38. X   /* Psuedo-ANSI compatibility */
  39. X   #define remove(name)    unlink(name)
  40. X   /* Lattice defines these for you */
  41. X   struct IntuitionBase *IntuitionBase;
  42. X   struct GfxBase *GfxBase;
  43. X#endif
  44. X
  45. XPLINT XOffset, YOffset, PLWidth, PLHeight;
  46. XPLINT MaxPLWidth, MaxPLHeight;
  47. XPLINT InitPLWidth, InitPLHeight;
  48. Xextern PLINT MaxColors;
  49. X
  50. XFILE *PlotFile;
  51. Xshort fbuffer;
  52. Xstatic PLINT CurColor;
  53. X
  54. Xvoid amisetup(xmm, ymm, xpg, ypg)
  55. XPLINT xpg, ypg;
  56. XPLFLT xmm, ymm;
  57. X{
  58. X}
  59. X
  60. Xvoid amiselect(ori, file)
  61. XPLINT ori;
  62. Xchar *file;
  63. X{
  64. X}
  65. X
  66. X/* amiini is the PLPLOT window initialization routine.  It opens the
  67. X   necessary libraries and the window. */
  68. Xvoid amiinit()
  69. X{
  70. X   PLFLT Initdpmx, Initdpmy;
  71. X
  72. X   /* Scan defaults file */
  73. X   GetPLDefs();
  74. X   /* Open the required libraries. */
  75. X   OpenLibs();
  76. X   /* Open window for graphics */
  77. X   OpenPLWind();
  78. X   /* Set up virtual screen width and height */
  79. X   /* Virtual screen is 25 times the actual one. */
  80. X   MaxPLWidth = PLScreen->Width - PLWindow->BorderLeft - PLWindow->BorderRight - 16;
  81. X   MaxPLHeight = PLScreen->Height - PLWindow->BorderTop - PLWindow->BorderBottom - 16;
  82. X   InitPLWidth = MaxPLWidth*25;
  83. X   InitPLHeight = MaxPLHeight*25;
  84. X   Initdpmx = GfxBase->NormalDPMX;
  85. X   Initdpmy = GfxBase->NormalDPMY;
  86. X   if(PLScreen->ViewPort.Modes & HIRES)
  87. X      Initdpmx *= 2.;
  88. X   if(PLScreen->ViewPort.Modes & LACE)
  89. X      Initdpmy *= 2.;
  90. X   setpxl((PLFLT)(Initdpmx/40.),(PLFLT)(Initdpmy/40.));
  91. X   setphy(0, (InitPLWidth-1), 0, (InitPLHeight-1));
  92. X   scol(1);
  93. X   swid(1);
  94. X   smod(1);
  95. X
  96. X   SetAPen(PLWRPort,1);
  97. X   SetDrMd(PLWRPort,JAM1);
  98. X   setlimits();
  99. X}
  100. X
  101. Xvoid setlimits()
  102. X{
  103. X   XOffset = PLWindow->BorderLeft+8;
  104. X   YOffset = PLWindow->BorderTop+8;
  105. X   PLWidth = PLWindow->Width - XOffset - PLWindow->BorderRight - 8;
  106. X   PLHeight = PLWindow->Height - YOffset - PLWindow->BorderBottom - 8;
  107. X   if(PLCurPrefs.WinType & PLASP) {
  108. X      if(PLWidth*MaxPLHeight > PLHeight*MaxPLWidth) {
  109. X         PLWidth = (MaxPLWidth*PLHeight)/MaxPLHeight;
  110. X         XOffset += (PLWindow->Width - PLWidth - PLWindow->BorderLeft -
  111. X                    PLWindow->BorderRight)/2;
  112. X      }
  113. X      else {
  114. X         PLHeight = (MaxPLHeight*PLWidth)/MaxPLWidth;
  115. X         YOffset += (PLWindow->Height - PLHeight - PLWindow->BorderTop -
  116. X                    PLWindow->BorderBottom)/2;
  117. X      }
  118. X   }
  119. X}
  120. X
  121. Xvoid amitidy()
  122. X{
  123. X   void beepw();
  124. X
  125. X   beepw();
  126. X   ClosePLWind();
  127. X   CloseLibs();
  128. X   if(fbuffer) {
  129. X      fclose(PlotFile);
  130. X      remove(PLOTBFFR);
  131. X   }
  132. X}
  133. X
  134. Xvoid OpenLibs()
  135. X{
  136. X  IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library",0L);
  137. X  if( IntuitionBase == NULL ) {
  138. X     puts("\nError opening Intuition library.");
  139. X     goto IntError;
  140. X  }
  141. X
  142. X  GfxBase = (struct GfxBase *)OpenLibrary("graphics.library",0L);
  143. X  if( GfxBase == NULL ) {
  144. X     puts("\nError opening Graphics library.");
  145. X     goto GfxError;
  146. X  }
  147. X
  148. X  return;
  149. X
  150. XGfxError:
  151. X  CloseLibrary((struct Library *)IntuitionBase);
  152. XIntError:
  153. X  pl_exit();
  154. X}
  155. X
  156. Xvoid CloseLibs()
  157. X{
  158. X   CloseLibrary((struct Library *)GfxBase);
  159. X   CloseLibrary((struct Library *)IntuitionBase);
  160. X}
  161. X
  162. Xvoid amitext()
  163. X{
  164. X}
  165. X
  166. Xvoid amigraph()
  167. X{
  168. X}
  169. X
  170. Xvoid amiclear()
  171. X{
  172. X   void beepw(), setpen();
  173. X
  174. X   beepw();
  175. X   setpen(0);
  176. X   RectFill(PLWRPort,XOffset,YOffset,PLWidth+XOffset,PLHeight+YOffset);
  177. X   setpen(CurColor);
  178. X   if(fbuffer) {
  179. X      fclose(PlotFile);
  180. X      remove(PLOTBFFR);
  181. X   }
  182. X}
  183. X
  184. Xstatic PLINT xold, yold;
  185. X
  186. Xvoid amipage()
  187. X{
  188. X   fbuffer = 0;
  189. X   if(PLCurPrefs.WinType & PLBUFF) {
  190. X      PlotFile = fopen(PLOTBFFR,"w+");
  191. X      if(PlotFile == NULL) {
  192. X         fprintf(stderr,"\nError opening plot data storage file.\n");
  193. X         ClosePLWind();
  194. X         CloseLibs();
  195. X         exit(1);
  196. X      }
  197. X      fbuffer = 1;
  198. X   }
  199. X   xold = -100000; yold = -100000;
  200. X}
  201. X
  202. X
  203. Xvoid amiline(x1, y1, x2, y2)
  204. XPLINT x1, y1, x2, y2;
  205. X{
  206. X   short comm, xshrt, yshrt;
  207. X
  208. X   /* Check for intuition messages */
  209. X   procmess();
  210. X   if(x1 == xold && y1 == yold) {
  211. X      comm = PEND;
  212. X      xshrt = x2;
  213. X      yshrt = y2;
  214. X      if(fbuffer) {
  215. X         (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
  216. X         (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
  217. X         (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
  218. X      }
  219. X      PLDraw((PLWidth*x2)/InitPLWidth,(PLHeight*y2)/InitPLHeight);
  220. X   }
  221. X   else {
  222. X      comm = PENU;
  223. X      xshrt = x1;
  224. X      yshrt = y1;
  225. X      if(fbuffer) {
  226. X         (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
  227. X         (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
  228. X         (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
  229. X      }
  230. X      comm = PEND;
  231. X      xshrt = x2;
  232. X      yshrt = y2;
  233. X      if(fbuffer) {
  234. X         (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
  235. X         (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
  236. X         (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
  237. X      }
  238. X      PLMove((PLWidth*x1)/InitPLWidth,(PLHeight*y1)/InitPLHeight);
  239. X      PLDraw((PLWidth*x2)/InitPLWidth,(PLHeight*y2)/InitPLHeight);
  240. X   }
  241. X   xold = x2;
  242. X   yold = y2;
  243. X}
  244. X
  245. Xvoid PLMove(x, y)
  246. XPLINT x, y;
  247. X{
  248. X   PLINT xsc, ysc;
  249. X
  250. X   xsc = XOffset + x;
  251. X   ysc = YOffset + PLHeight - y;
  252. X   Move(PLWRPort,xsc,ysc);
  253. X}
  254. X
  255. Xvoid PLDraw(x, y)
  256. XPLINT x, y;
  257. X{
  258. X   PLINT xsc, ysc;
  259. X
  260. X   xsc = XOffset + x;
  261. X   ysc = YOffset + PLHeight - y;
  262. X   Draw(PLWRPort,xsc,ysc);
  263. X}
  264. X
  265. Xvoid remakeplot()
  266. X{
  267. X   long cxy, x1, y1;
  268. X   long x, y;
  269. X   void setpen();
  270. X
  271. X   setpen(0);
  272. X   RectFill(PLWRPort,PLWindow->BorderLeft,PLWindow->BorderTop,
  273. X            PLWindow->Width-PLWindow->BorderRight,
  274. X            PLWindow->Height-PLWindow->BorderBottom);
  275. X
  276. X   setpen(1);
  277. X
  278. X   if(fbuffer == 0)
  279. X      return;
  280. X   prepupdate();
  281. X
  282. X   while(!getpoint(&cxy, &x1, &y1)) {
  283. X      if(cxy == PENU) {
  284. X         x = ((long)PLWidth*(long)x1)/InitPLWidth;
  285. X         y = ((long)PLHeight*(long)y1)/InitPLHeight;
  286. X         PLMove((PLINT)x, (PLINT)y);
  287. X      }
  288. X      else if(cxy == PEND) {
  289. X         x = ((long)PLWidth*(long)x1)/InitPLWidth;
  290. X         y = ((long)PLHeight*(long)y1)/InitPLHeight;
  291. X         PLDraw((PLINT)x, (PLINT)y);
  292. X      }
  293. X      else if(cxy == SPEN) {
  294. X         CurColor = x1;
  295. X         if(x1 >= MaxColors)
  296. X            CurColor = 1;
  297. X         setpen((PLINT)CurColor);
  298. X      }
  299. X   }
  300. X
  301. X   finiupdate();
  302. X   DisplayBeep(PLScreen);
  303. X}
  304. X
  305. Xvoid amiwidth(width)
  306. XPLINT width;
  307. X{
  308. X   short shwid, comm;
  309. X
  310. X   if(width>=1 && width <=3) {
  311. X      comm = PWID;
  312. X      shwid = width;
  313. X      if(fbuffer) {
  314. X         fwrite((char *)&comm,sizeof(short),1,PlotFile);
  315. X         fwrite((char *)&shwid,sizeof(short),1,PlotFile);
  316. X      }
  317. X   }
  318. X}
  319. X
  320. Xvoid amicolor(color)
  321. XPLINT color;
  322. X{
  323. X   short shcol, comm;
  324. X   void setpen();
  325. X
  326. X   if(color >= 0 && color < 16) {
  327. X     shcol = color;
  328. X     comm = SPEN;
  329. X     if(fbuffer) {
  330. X        fwrite((char *)&comm,sizeof(short),1,PlotFile);
  331. X        fwrite((char *)&shcol,sizeof(short),1,PlotFile);
  332. X     }
  333. X     if(color >= MaxColors)
  334. X        color = 1;
  335. X     CurColor = color;
  336. X     setpen(color);
  337. X   }
  338. X}
  339. X
  340. Xstatic void setpen(color)
  341. XPLINT color;
  342. X{
  343. X   SetAPen(PLWRPort,color);
  344. X}
  345. X
  346. Xstatic void beepw()
  347. X{
  348. X   DisplayBeep(PLScreen);
  349. X   eventwait();
  350. X}
  351. END_OF_FILE
  352. if test 6991 -ne `wc -c <'Amiga/Amiga.c'`; then
  353.     echo shar: \"'Amiga/Amiga.c'\" unpacked with wrong size!
  354. fi
  355. # end of 'Amiga/Amiga.c'
  356. fi
  357. if test -f 'drivers/postscript.c' -a "${1}" != "-c" ; then 
  358.   echo shar: Will not clobber existing file \"'drivers/postscript.c'\"
  359. else
  360. echo shar: Extracting \"'drivers/postscript.c'\" \(9517 characters\)
  361. sed "s/^X//" >'drivers/postscript.c' <<'END_OF_FILE'
  362. X/* This file contains the PostScript device dependent subroutines for */
  363. X/* use with plplot. */
  364. X
  365. X#include "plplot.h"
  366. X#include <stdio.h>
  367. X
  368. X#define LINELENGTH      70
  369. X#define COPIES          1
  370. X#define XSIZE           540
  371. X#define YSIZE           720
  372. X#define XPSSIZE         3000
  373. X#define YPSSIZE         2250
  374. X#define XOFFSET         576
  375. X#define YOFFSET         36
  376. X#define XSCALE          100
  377. X#define YSCALE          100
  378. X#define LINESCALE       100
  379. X#define ANGLE           90
  380. X#define PSX             XPSSIZE-1
  381. X#define PSY             YPSSIZE-1
  382. X
  383. Xchar *getdate();
  384. Xstatic int numpages = 0;
  385. Xstatic int linepos = 0;
  386. X
  387. Xstatic FILE *OutFile;
  388. Xstatic PLINT orient;
  389. Xstatic PLINT select=0;
  390. Xstatic char FileName[80];
  391. X
  392. Xvoid pssetup(xdpi, ydpi, xwid, ywid)
  393. XPLINT xwid, ywid;
  394. XPLFLT xdpi, ydpi;
  395. X{
  396. X}
  397. X
  398. Xvoid psselect(ori, name)
  399. XPLINT ori;
  400. Xchar *name;
  401. X{
  402. X   orient = ori;
  403. X   strncpy(FileName,name,sizeof(FileName)-1);
  404. X   FileName[sizeof(FileName)-1] = '\0';
  405. X   select = 1;
  406. X}
  407. X
  408. X
  409. X/* Open file.  Set up for graphics. */
  410. Xvoid psinit()
  411. X{
  412. X      char line[80];
  413. X
  414. X      if(!select) {
  415. X         printf("Landscape or portrait orientation? (0 or 1) ");
  416. X         fgets(line,sizeof(line),stdin);
  417. X         if(sscanf(line,"%d",&orient) != 1)
  418. X            orient = 0;
  419. X      }
  420. X
  421. X   /* setpxl() sets the dots/mm in the x and y directions */
  422. X      setpxl((PLFLT)11.81,(PLFLT)11.81);         /* 300 dpi */
  423. X
  424. X   /* setphy() sets the device coordinates. These are integer */
  425. X   /* values. Set up for landscape orientation (long axis of page in the */
  426. X   /* x direction). Origin is in the lower left hand corner. */
  427. X      if(!orient)
  428. X         setphy(0,PSX,0,PSY);
  429. X      else
  430. X         setphy(0,PSY,0,PSX);
  431. X
  432. X   /* Set default pen color using scol(color). */
  433. X   /* Any default pen color can be used but a black pen is probably best. */
  434. X      scol(1);
  435. X
  436. X   /* Set default pen width using swid(width) */
  437. X      swid(1);
  438. X
  439. X   /* Set device interaction mode using smod(mode). Set mode to 0 for */
  440. X   /* a noninteractive device, Unless you are writing your */
  441. X   /* own Amiga screen driver mode should be 0. */
  442. X      smod(0);
  443. X
  444. X   /* Well that's all the information plplot needs. Let's prompt for a */
  445. X   /* graphics file name. */
  446. X      for(;;) {
  447. X         if(!select) {
  448. X            printf("Enter PostScript graphics file name. ");
  449. X            fgets(line,sizeof(line),stdin);
  450. X            if(sscanf(line,"%s",FileName)!=1)
  451. X               continue;
  452. X         }
  453. X
  454. X         if (!(OutFile = fopen(FileName,"w"))) {
  455. X            fprintf(stderr,"Can't open %s.\n",FileName);
  456. X            select = 0;
  457. X         }
  458. X         else
  459. X            break;
  460. X      }
  461. X      select = 0;
  462. X
  463. X  /* Header comments into PostScript file */
  464. X
  465. X      fprintf(OutFile,"%%!PS-Adobe-2.0 EPSF-2.0\n");
  466. X      fprintf(OutFile,"%%%%BoundingBox: 36 36 540 720\n");
  467. X      fprintf(OutFile,"%%%%Title: %s\n", FileName);
  468. X      fprintf(OutFile,"%%%%Creator: PLPLOT Version 2.0\n");
  469. X      fprintf(OutFile,"%%%%CreationDate: %s\n", getdate());
  470. X      fprintf(OutFile,"%%%%Pages: (atend)\n");
  471. X      fprintf(OutFile,"%%%%EndComments\n\n");
  472. X
  473. X  /* Definitions */
  474. X
  475. X      fprintf(OutFile, "/PSSave save def\n");      /* save VM state */
  476. X      fprintf(OutFile, "/PSDict 200 dict def\n");  /* define a dictionary */
  477. X      fprintf(OutFile, "PSDict begin\n");          /* start using it */
  478. X      fprintf(OutFile, "/@restore /restore load def\n");
  479. X      fprintf(OutFile, "/restore\n");
  480. X      fprintf(OutFile, "   {vmstatus pop\n");
  481. X      fprintf(OutFile, "    dup @VMused lt {pop @VMused} if\n");
  482. X      fprintf(OutFile, "    exch pop exch @restore /@VMused exch def\n");
  483. X      fprintf(OutFile, "   } def\n");
  484. X      fprintf(OutFile, "/@pri\n");
  485. X      fprintf(OutFile, "   {\n");
  486. X      fprintf(OutFile, "    ( ) print\n");
  487. X      fprintf(OutFile, "    (                                       ) cvs print\n");
  488. X      fprintf(OutFile, "   } def\n");
  489. X      fprintf(OutFile, "/@copies\n");   /* n @copies - */
  490. X      fprintf(OutFile, "   {\n");
  491. X      fprintf(OutFile, "    /#copies exch def\n");
  492. X      fprintf(OutFile, "   } def\n");
  493. X      fprintf(OutFile, "/@start\n");    /* - @start -  -- start everything */
  494. X      fprintf(OutFile, "   {\n");
  495. X      fprintf(OutFile, "    vmstatus pop /@VMused exch def pop\n");
  496. X      fprintf(OutFile, "   } def\n");
  497. X      fprintf(OutFile, "/@end\n");      /* - @end -  -- finished */
  498. X      fprintf(OutFile, "   {(VM Used: ) print @VMused @pri\n");
  499. X      fprintf(OutFile, "    (. Unused: ) print vmstatus @VMused sub @pri pop pop\n");
  500. X      fprintf(OutFile, "    (\\n) print flush\n");
  501. X      fprintf(OutFile, "    end\n");
  502. X      fprintf(OutFile, "    PSSave restore\n");
  503. X      fprintf(OutFile, "   } def\n");
  504. X      fprintf(OutFile, "/bop\n");       /* bop -  -- begin a new page */
  505. X      fprintf(OutFile, "   {\n");
  506. X      fprintf(OutFile, "    /SaveImage save def\n");
  507. X      fprintf(OutFile, "   } def\n");
  508. X      fprintf(OutFile, "/eop\n");       /* - eop -  -- end a page */
  509. X      fprintf(OutFile, "   {\n");
  510. X      fprintf(OutFile, "    showpage\n");
  511. X      fprintf(OutFile, "    SaveImage restore\n");
  512. X      fprintf(OutFile, "   } def\n");
  513. X      fprintf(OutFile, "/@line\n");     /* set line parameters */
  514. X      fprintf(OutFile, "   {0 setlinecap\n");
  515. X      fprintf(OutFile, "    0 setlinejoin\n");
  516. X      fprintf(OutFile, "    1 setmiterlimit\n");
  517. X      fprintf(OutFile, "   } def\n");
  518. X                        /* d @hsize -  horizontal clipping dimension */
  519. X      fprintf(OutFile, "/@hsize   {/hs exch def} def\n");
  520. X      fprintf(OutFile, "/@vsize   {/vs exch def} def\n");
  521. X                        /* d @hoffset - shift for the plots */
  522. X      fprintf(OutFile, "/@hoffset {/ho exch def} def\n");
  523. X      fprintf(OutFile, "/@voffset {/vo exch def} def\n");
  524. X                        /* s @hscale - scale factors */
  525. X      fprintf(OutFile, "/@hscale  {100 div /hsc exch def} def\n");
  526. X      fprintf(OutFile, "/@vscale  {100 div /vsc exch def} def\n");
  527. X                        /* s @lscale - linewidth scale factor */
  528. X      fprintf(OutFile, "/@lscale  {100 div /lin exch def} def\n");
  529. X                        /* a @angle - rotation angle */
  530. X      fprintf(OutFile, "/@angle   {/ang exch def} def\n");
  531. X      fprintf(OutFile, "/@SetPlot\n");  /* setup user specified offsets, */
  532. X      fprintf(OutFile, "   {\n");       /* scales, sizes for clipping    */
  533. X      fprintf(OutFile, "    ho vo translate\n");
  534. X      fprintf(OutFile, "    XScale YScale scale\n");
  535. X      fprintf(OutFile, "    ang rotate\n");
  536. X      fprintf(OutFile, "    lin lw mul setlinewidth\n");
  537. X      fprintf(OutFile, "   } def\n");
  538. X      fprintf(OutFile, "/XScale\n");    /* setup x scale */
  539. X      fprintf(OutFile, "   {hsc hs mul %d div} def\n", YPSSIZE);
  540. X      fprintf(OutFile, "/YScale\n");    /* setup y scale */
  541. X      fprintf(OutFile, "   {vsc vs mul %d div} def\n", XPSSIZE);
  542. X      fprintf(OutFile, "/lw 3 def\n");  /* default line width */
  543. X      fprintf(OutFile, "/M {moveto} def\n");
  544. X      fprintf(OutFile, "/D {lineto} def\n");
  545. X      fprintf(OutFile, "/S {stroke} def\n");
  546. X      fprintf(OutFile, "/Z {stroke newpath} def\n");
  547. X      fprintf(OutFile, "end\n\n");      /* end of dictionary definition */
  548. X
  549. X  /* Set up the plots */
  550. X
  551. X      fprintf(OutFile, "PSDict begin\n");
  552. X      fprintf(OutFile, "@start\n");
  553. X      fprintf(OutFile, "%d @copies\n", COPIES);
  554. X      fprintf(OutFile, "@line\n");
  555. X      fprintf(OutFile, "%d @hsize\n", XSIZE);
  556. X      fprintf(OutFile, "%d @vsize\n", YSIZE);
  557. X      fprintf(OutFile, "%d @hoffset\n", XOFFSET);
  558. X      fprintf(OutFile, "%d @voffset\n", YOFFSET);
  559. X      fprintf(OutFile, "%d @hscale\n", XSCALE);
  560. X      fprintf(OutFile, "%d @vscale\n", YSCALE);
  561. X      fprintf(OutFile, "%d @lscale\n", LINESCALE);
  562. X      fprintf(OutFile, "%d @angle\n", ANGLE);
  563. X      fprintf(OutFile, "@SetPlot\n\n");
  564. X      fprintf(OutFile, "bop\n");
  565. X      fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
  566. X}
  567. X
  568. X/* Sets the printer to text mode */
  569. Xvoid pstext()
  570. X{
  571. X}
  572. X
  573. X/* Sets the printer to graphics mode */
  574. Xvoid psgraph()
  575. X{
  576. X}
  577. X
  578. X/* Form feed */
  579. Xvoid psclear()
  580. X{
  581. X     fprintf(OutFile," S\neop\nbop\n");
  582. X}
  583. X
  584. Xstatic PLINT xlast, ylast;
  585. X
  586. Xvoid pspage()
  587. X{
  588. X     numpages++;
  589. X     fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
  590. X     linepos = 0;
  591. X     xlast = -100000; ylast = -100000;
  592. X}
  593. X
  594. X/* May put something here someday */
  595. Xvoid pscolor(colour)
  596. Xint colour;
  597. X{
  598. X}
  599. X
  600. X/* I don't know what to put here - Tony */
  601. Xvoid pswidth()
  602. X{
  603. X}
  604. X
  605. Xvoid psline(x1,y1,x2,y2)
  606. XPLINT x1,y1,x2,y2;
  607. X{
  608. X      if (linepos + 21 > LINELENGTH) {
  609. X          putc('\n', OutFile);
  610. X          linepos = 0;
  611. X      } else
  612. X          putc(' ', OutFile);
  613. X
  614. X      if(!orient) {
  615. X         if(x1 == xlast && y1 == ylast)
  616. X            fprintf(OutFile, "%ld %ld D", x2, y2);
  617. X         else
  618. X            fprintf(OutFile, "Z %ld %ld M %ld %ld D", x1, y1, x2, y2);
  619. X      }
  620. X      else {
  621. X         if(x1 == xlast && y1 == ylast)
  622. X            fprintf(OutFile, "%ld %ld D", PSX-y2, x2);
  623. X         else
  624. X            fprintf(OutFile, "Z %ld %ld M %ld %ld D", PSX-y1,x1,PSX-y2,x2);
  625. X      }
  626. X
  627. X      xlast = x2;
  628. X      ylast = y2;
  629. X      linepos += 21;
  630. X}
  631. X
  632. X/* Close graphics file */
  633. Xvoid pstidy()
  634. X{
  635. X      fprintf(OutFile," S\neop\n");
  636. X      numpages++;
  637. X      fprintf(OutFile, "@end\n\n");
  638. X      fprintf(OutFile, "%%%%Trailer\n");
  639. X      fprintf(OutFile, "%%%%Pages: %d\n", numpages);
  640. X      fclose(OutFile);
  641. X      numpages = 0;
  642. X      linepos = 0;
  643. X}
  644. X
  645. X/* Get the date and time */
  646. Xstatic char *getdate()
  647. X{
  648. X        int len;
  649. X        long t, time();
  650. X        char *p, *ctime();
  651. X
  652. X        t = time((long *) 0);
  653. X        p = ctime(&t);
  654. X        len = strlen(p);
  655. X        *(p + len - 1) = '\0';  /* zap the newline character */
  656. X        return p;
  657. X}
  658. END_OF_FILE
  659. if test 9517 -ne `wc -c <'drivers/postscript.c'`; then
  660.     echo shar: \"'drivers/postscript.c'\" unpacked with wrong size!
  661. fi
  662. # end of 'drivers/postscript.c'
  663. fi
  664. if test -f 'fonts/plstnd.fnt.uu' -a "${1}" != "-c" ; then 
  665.   echo shar: Will not clobber existing file \"'fonts/plstnd.fnt.uu'\"
  666. else
  667. echo shar: Extracting \"'fonts/plstnd.fnt.uu'\" \(8058 characters\)
  668. sed "s/^X//" >'fonts/plstnd.fnt.uu' <<'END_OF_FILE'
  669. Xbegin 644 plstnd.fnt
  670. XM"R_W#/<)``SX]T````P(]T``^_X%_D!`]PSU"OD,^?=``/D,`@P%"P8*!P@'_
  671. XM!@8$!0,"`D``^0("`@4!!@`'_@?[!OD%^`+W^?=`0/<,]@L(!P<)!0L##/\,@
  672. XM_0O["?H'^03Y__K\^_K]^/_W`_<%^`?Z"/Q`0/<,]0KY#/GW0`#Y#``,`PL%O
  673. XM"08'!P0'_P;\!?H#^`#W^?=`0/<,]@GZ#/KW0`#Z#`<,0`#Z`@("0`#Z]P?W+
  674. XM0$#W#/8(^@SZ]T``^@P'#$``^@("`D!`]PSV"P@'!PD%"P,,_PS]"_L)^@?YD
  675. XM!/G_^OS[^OWX__<#]P7X!_H(_`C_0``#_PC_0$#W#/4+^0SY]T``!PP']T``G
  676. XM^0('`D!`]PS\!``,`/=`0/<,^`@$#`3\`_D"^`#W_O?\^/OY^OSZ_D!`]PSU-
  677. XM"OD,^?=```<,^?Y``/X#!_=`0/<,]@?Z#/KW0`#Z]P;W0$#W#/0,^`SX]T``C
  678. XM^`P`]T``"`P`]T``"`P(]T!`]PSU"_D,^?=``/D,!_=```<,!_=`0/<,]0O^F
  679. XM#/P+^@GY!_@$^/_Y_/KZ_/C^]P+W!/@&^@?\"/\(!`<'!@D$"P(,_@Q`0/<,M
  680. XM]0KY#/GW0`#Y#`(,!0L&"@<(!P4&`P4"`@'Y`4!`]PSU"_X,_`OZ"?D'^`3X:
  681. XM__G\^OK\^/[W`O<$^`;Z!_P(_P@$!P<&"00+`@S^#$```?L']4!`]PSU"OD,?
  682. XM^?=``/D,`@P%"P8*!P@'!@8$!0,"`OD"0````@?W0$#W#/8*!PD%"P(,_@S[&
  683. XM"_D)^0?Z!?L$_0,#`04`!O\'_0?Z!?@"]_[W^_CY^D!`]PSX"``,`/=``/D,Z
  684. XM!PQ`0/<,]0OY#/G]^OK\^/_W`?<$^`;Z!_T'#$!`]PSW"?@,`/=```@,`/=`#
  685. XM0/<,]`SV#/OW0```#/OW0```#`7W0``*#`7W0$#W#/8*^0P']T``!PSY]T!`8
  686. XM]PSW"?@,``(`]T``"`P``D!`]PSV"@<,^?=``/D,!PQ``/GW!_=`0/<,]PD`E
  687. XM#/CW0```#`CW0`#[_@7^0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P(">
  688. XM0`#Y`@("!0$&``?^!_L&^07X`O?Y]T!`]PSV!_H,^O=``/H,!@Q`0/<,]PD`)
  689. XM#/CW0```#`CW0`#X]PCW0$#W#/8)^@SZ]T``^@P'#$``^@("`D``^O<']T!`U
  690. XM]PSV"@<,^?=``/D,!PQ``/GW!_=`0/<,]0OY#/GW0``'#`?W0`#Y`@<"0$#W0
  691. XM#/4+_@S\"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'!P8)!`L"#/X,T
  692. XM0`#]`@,"0$#W#/P$``P`]T!`]PSU"OD,^?=```<,^?Y``/X#!_=`0/<,]PD`-
  693. XM#/CW0```#`CW0$#W#/0,^`SX]T``^`P`]T``"`P`]T``"`P(]T!`]PSU"_D,=
  694. XM^?=``/D,!_=```<,!_=`0/<,]PGY#`<,0`#]`@,"0`#Y]P?W0$#W#/4+_@S\:
  695. XM"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'!P8)!`L"#/X,0$#W#/4+E
  696. XM^0SY]T``!PP']T``^0P'#$!`]PSU"OD,^?=``/D,`@P%"P8*!P@'!08#!0("U
  697. XM`?D!0$#W#/<)^0P``OGW0`#Y#`<,0`#Y]P?W0$#W#/@(``P`]T``^0P'#$!`9
  698. XM]PSW"?D'^0GZ"_L,_0S^"_\)``4`]T``!P<'"08+!0P##`(+`0D`!4!`]PSV+
  699. XM"@`,`/=``/X'^P;Z!?D#^0#Z_OO]_OP"_`7]!OX'``<#!@4%!@('_@=`0/<,M
  700. XM]@KY#`?W0`#Y]P<,0$#W#/4+``P`]T``]P;X!OD%^@'[__S^__T!_03^!?\&Z
  701. XM`0<%"`8)!D!`]PSV"OGW_??Z_OD"^0;Z"?P+_PP!#`0+!@D'!@<"!OX#]P?W5
  702. XM0$#W#/<*!@4&]T``!@($!`(%_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSVC
  703. XM"?H,^O=``/H"_`3^!0$%`P0%`@;_!OT%^@/X`??^]_SX^OI`0/<,]PD&`@0$]
  704. XM`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z0$#W#/<*!@P&]T``!@($!`(%_P7]Y
  705. XM!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSW"?K_!O\&`04#!`0"!?\%_03[`OK_@
  706. XM^OW[^OWX__<"]P3X!OI`0/<,^P<%#`,,`0L`"`#W0`#]!00%0$#W#/<*!@4&<
  707. XM]07R!/$"\/_P_?%```8"!`0"!?\%_03[`OK_^OW[^OWX__<"]P3X!OI`0/<,1
  708. XM]PK[#/OW0`#[`?X$``4#!04$!@$&]T!`]PS\!/\,``L!#``-_PQ````%`/=`,
  709. XM0/<,^P4`#`$+`@P!#0`,0``!!0'T`/'^\/SP0$#W#/<(^PS[]T``!07[^T``$
  710. XM__\&]T!`]PS\!``,`/=`0/<,\0_U!?7W0`#U`?@$^@7]!?\$``$`]T````$#<
  711. XM!`4%"`4*!`L!"_=`0/<,]PK[!?OW0`#[`?X$``4#!04$!@$&]T!`]PSW"O\%-
  712. XM_03[`OK_^OW[^OWX__<"]P3X!OH'_0?_!@($!`(%_P5`0/<,]@GZ!?KP0`#Z-
  713. XM`OP$_@4!!0,$!0(&_P;]!?H#^`'W_O?\^/KZ0$#W#/<*!@4&\$``!@($!`(%,
  714. XM_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSY!OT%_?=``/W__@(`!`(%!05`0
  715. XM0/<,^`D&`@4$`@7_!?P$^P+\`/[_`_X%_0;[!OH%^`+W__?\^/OZ0$#W#/L'T
  716. XM``P`^P'X`_<%]T``_04$!4!`]PSW"OL%^_O\^/[W`?<#^`;[0``&!0;W0$#W7
  717. XM#/@(^@4`]T``!@4`]T!`]PSU"_@%_/=````%_/=````%!/=```@%!/=`0/<,Z
  718. XM^`G[!0;W0``&!?OW0$#W#/@(^@4`]T``!@4`]_[S_/'Z\/GP0$#W#/@)!@7[Q
  719. XM]T``^P4&!4``^_<&]T!`]PSV"_\%_03[`OH`^?WY^OKX_/?^]P#X`_L%_@<"V
  720. XM"`5``/\%`04"!`,"!?H&^`?W"/=`0/<,]PH##`$+_PG]!?P"^_[Z^/GP0``#:
  721. XM#`4,!PH'!P8%!00#`P`#0````P("!``%_@7[!/D#^`'W__?]^/SY^_Q`0/<,Q
  722. XM]PKX`OH$_`7]!?\$``,!``'\`/=```@%!P(&``#W_O/]\$!`]PSW"0(%_P7]S
  723. XM!/L"^O_Z_/OY_/C^]P#W`O@$^@7]!0`$`P(%``?_"?\+``P"#`0+!@E`0/<,E
  724. XM^`<"#``+_PK_"0`(`P<&!T``!@<"!?\#_`#[_?O[_/G^]P'U`O,"\0'P__#^N
  725. XM\D!`]PSV"O<!^`/Z!?P%_03]`OS^^O=``/S^_@(`!`(%!`4&`P8`!?L"\$!`B
  726. XM]PSZ!0`%_O[]^OWX_O<`]P+Y`_M`0/<,]PG]!?GW0``'!`8%!04#!/\`_?_\G
  727. XM_T``_/_^_O_]`?@"]P/W!/A`0/<,^`CY#/L,_0O^"@;W0```!?KW0$#W#/8+P
  728. XM_07W\$``_`'[_/OY_??_]P'X`_H%_D``!P4%_@3Z!/@%]P?W"?D*^T!`]PSWX
  729. XM"?H%_07\__OZ^O=```<%!@(%``/]`/K]^/KW0$#W#/@(`@P`"_\*_PD`"`,'C
  730. XM!@=```,'``;^!?T#_0'__P+^!/Y```+^_OW\_/OZ^_C]]@'T`O,"\0#P_O!`G
  731. XM0/<,^`D`!?X$_`+[__O\_/G]^/_W`?<#^`7Z!OT&``4#!`0"!0`%0$#W#/4+T
  732. XM_@7Z]T```P4$_P7Z!O=``/<"^03\!0D%0$#W#/<)^__[_/SY_?C_]P'W`_@%,
  733. XM^@;]!@`%`P0$`@4`!?X$_`+[__?P0$#W#/<+"07_!?T$^P+Z__K\^_G\^/[WA
  734. XM`/<"^`3Z!?T%``0#`P0!!4!`]PSV"@$%_O=``/@"^@3]!0@%0$#W#/8*]P'X"
  735. XM`_H%_`7]!/T"^_S[^?WW__<"^`3Z!OX'`@<%0$#W#/<)^07[!?T#`_(%\`?P+
  736. XM0``(!0<#!0#[]?GR^/!`0/<,]`L$#/SP0`#U`?8#^`7Z!?L$^P+Z_?KZ^_C]?
  737. XM]__W`O@$^@;]"`()!4!`]PST"_P%^@3X`??^]_OX^/GW^_?]^/_[0```___[;
  738. XM`/@!]P/W!?@'^PC^"`$'!`8%0$#W#/@(!00#!0`%_@3\`OO_^_S\^?WX__<"Z
  739. XM]P3X0`#[_@/^0$#W#/@)`@P`"_X(_0;\`_O^^_K\^/WW__<!^`/[!/T%``8%F
  740. XM!@D%"P0,`@Q``/P"!0)`0/<,]@H$#/SP0`#_!?P$^@+Y__G\^OK\^/_W`?<$(
  741. XM^`;Z!_T'``8"!`0!!?\%0$#W#/@(0`!`0/<,]@K_#/P+^@CY`_D`^OO\^/_W+
  742. XM`?<$^`;[!P`'`P8(!`L!#/\,0$#W#/8*_`C^"0$,`?=`0/<,]@KZ!_H(^PK\5
  743. XM"_X,`@P$"P4*!@@&!@4$`P'Y]P?W0$#W#/8*^PP&#``$`P0%`P8"!_\'_0;Z7
  744. XM!/@!]_[W^_CZ^?G[0$#W#/8*`PSY_@C^0``##`/W0$#W#/8*!0S[#/H#^P3^P
  745. XM!0$%!`0&`@?_!_T&^@3X`??^]_OX^OGY^T!`]PSV"@8)!0L"#``,_0O["/H#L
  746. XM^O[[^OWX`/<!]P3X!OH'_0?^!@$$`P$$``3]`_L!^OY`0/<,]@H'#/WW0`#YD
  747. XM#`<,0$#W#/8*_@S["_H)^@?[!?T$`0,$`@8`!_X'^P;Y!?@"]_[W^_CZ^?G[2
  748. XM^?[Z`/P"_P,#!`4%!@<&"04+`@S^#$!`]PSV"@8%!0(#``#____\`/H"^07Y*
  749. XM!OH)_`O_#``,`PL%"08%!@`%^P/X`/?^]_OX^OI`0/<,^P4`^?_X`/<!^`#Y^
  750. XM0$#W#/L%`?@`]__X`/D!^`'V`/3_\T!`]PS[!0`%_P0``P$$``5```#Y__@`!
  751. XM]P'X`/E`0/<,^P4`!?\$``,!!``%0``!^`#W__@`^0'X`?8`]/_S0$#W#/L%Z
  752. XM``P`_D```/G_^`#W`?@`^4!`]PSW"?H'^@C["OP+_@P"#`0+!0H&"`8&!00$2
  753. XM`P`!`/Y```#Y__@`]P'X`/E`0/<,_`0`#``%0$#W#/@(_`S\!4``!`P$!4!`4
  754. XM]PSY!_\,_0O\"?P'_07_!`$$`P4$!P0)`PL!#/\,0$#W#/8*_A#^\T```A`"$
  755. XM\T``!PD%"P(,_@S["_D)^0?Z!?L$_0,#`04`!O\'_0?Z!?@"]_[W^_CY^D!`5
  756. XM]PSU"PD0]_!`0/<,^0<$$`(.``O^!_T"_?[^^0#U`O($\$!`]PSY!_P0_@X`C
  757. XM"P('`P(#_@+Y`/7^\OSP0$#W#/P$`!``\$!`]PSS#?<`"0!`0/<,\PT`"0#WO
  758. XM0`#W``D`0$#W#/,-]P,)`T``]_T)_4!`]PSX"``&`/I``/L#!?U```4#^_U`&
  759. XM0/<,^P4``?\``/\!```!0$#W#/8+`1#Z\$``!Q``\$``^@,(`T``^?T'_4!`,
  760. XM]PSS#0H#"@0)!0@%!P0&`@3]`OH`^/[W^O?X^/?Y]OOV_??_^`#_!``%`0<!J
  761. XM"0`+_@S\"_L)^P?\!/X!`_H%^`?W"?<*^`KY0$#W#/4+]PGX!_D#^?WX^??WZ
  762. XM0``)"0@'!P,'_0CY"?=``/<)^0C]!P,'!P@)"4``]_?Y^/WY`_D'^`GW0$#WG
  763. XM#/D'_P?\!OH$^0'Y__K\_/K_^0'Y!/H&_`?_!P$&!`0&`0?_!T!`]PSZ!OH&5
  764. XM^OH&^@8&^@9`0/<,^0<`"/G\!_P`"$!`]PSZ!@`*^@``]@8```I`0/<,^`@`;
  765. XM"?X#^`/]__OY`/T%^0/_"`,"`P`)0$#W#/D'``<`^4``^0`'`$!`]PS[!?L%1
  766. XM!?M```4%^_M`0/<,^P4`!@#Z0`#[`P7]0``%`_O]0$#W#/P$_P3]`_P!_/_]^
  767. XM_?_\`?P#_03_!`$#`P$$_P1``/T!_?]``/X"_OY``/\#__U````#`/U```$##
  768. XM`?U```("`OY```,!`_]`0/<,_`3\!/S\!/P$!/P$0`#]`_W]0`#^`_[]0`#_`
  769. XM`__]0````P#]0``!`P']0``"`P+]0``#`P/]0$#W#/H&``;\^P8"^@($^P`&4
  770. XM0``````&0````/H"0````/S[0`````3[0`````8"0$#W#/H&_@;^`OH"^O[^Y
  771. XM_O[Z`OH"_@;^!@("`@(&_@9`0/<,^0<`"/G\!_P`"$```/@'!/D$`/A`0/<,4
  772. XM_P$``?\``/\!```!0$#W#/X"_P+^`?[___X!_@+_`@$!`O\"0$#W#/P$_P3](
  773. XM`_P!_/_]_?_\`?P#_03_!`$#`P$$_P1`0/<,^P7_!?T$_`/[`?O__/W]_/_[L
  774. XM`?L#_`3]!?\%`00#`P0!!?\%0$#W#/D'_P?\!OH$^0'Y__K\_/K_^0'Y!/H&[
  775. XM_`?_!P$&!`0&`0?_!T!`]PSU"_X+^PKX"/8%]0+U_O;[^/C[]O[U`O4%]@CX9
  776. XM"OL+_@L""@4("`4*`@O^"T!`]PSO$?X1^A#X#_4-\POQ"/`&[P+O_O#Z\?CS5
  777. XM]?7S^/'Z\/[O`N\&\`CQ"_,-]0_X$/H1_A$"$`8/"`T+"PT(#P80`A'^$4!`<
  778. XM]PSJ%OX6^17U$_(1[P[M"^L'Z@+J_NOY[?7O\O+O]>WYZ_[J`NH'ZPOM#N\1%
  779. XM\A/U%?D6_A8"%0<3"Q$.#A$+$P<5`A;^%D!`]PS7*?TI]RCS)^XEZ2+E'^$;2
  780. XMWA?;$MD-V`G7`]?]V/?9\]ONWNGAY>7AZ=[NV_/9]]C]UP/7"=@-V1+;%]X;K
  781. XMX1_E(NDE[B?S*/<I_2D#*`DG#242(A<?&QL?%R(2)0TG"2@#*?TI0$#W#/D'!
  782. XM_1#]\$``_A#^\$``_1`$$$``_?`$\$!`]PSY!P(0`O!```,0`_!``/P0`Q!`D
  783. XM`/SP`_!`0/<,^`<"$/\-_@K^"/\%`0,!`OT``?X!_?_[_OC^]O_S`O!````.H
  784. XM_PO_!P`$0```_/_Y__4`\D!`]PSY"/X0`0T""@((`07_`_\"`P#__O_]`?L"G
  785. XM^`+V`?/^\$````X!"P$'``1```#\`?D!]0#R0$#W#/0,"`GX``CW0$#W#/0,D
  786. XM^`D(`/CW0$#W#/0,]_WW__@"^@/\`_X"`O\$_@;^"/\)`4``]__X`?H"_`+^:
  787. XM`0+^!/T&_0C^"0$)`T!`]PSZ!OX,`P9``/X,_0L#!D!`]PSS#08""0`&_D``J
  788. XM`P4(``/[0`#W``@`0$#W#/@(_@8`"0(&0`#[`P`(!0-````(`/=`0/<,\PWZO
  789. XM`O<`^OY``/T%^`#]^T``^``)`$!`]PSX"/[Z`/<"^D``^_T`^`7]0```"0#X%
  790. XM0$#W#/0,"0SW]T``_`S^"OX(_0;[!?D%]P?W"?@+^@S\#/X+`0H$"@<+"0Q`U
  791. XM``7^`_T"^P+Y!/<&]PCX"?H)_`?^!?Y`0/<,\PX%!`0&`@?_!_T&_`7[`OO_D
  792. XM_/W^_`'\`_T$_T``_P?]!?P"_/_]_?[\0``%!P3_!/T&_`C\"OX+`0L#"@8)Y
  793. XM"`<*!0L"#/\,_`OZ"O@(]P;V`_8`]_WX^_KY_/C_]P+W!?@'^0CZ0``&!P7_&
  794. XM!?T&_$!`]PSS#O\,_`OY"?<&]@/V`/?]^?K\^/_W`O<%^`CZ"OT+``L#"@8()
  795. XM"04+`@S_#$````/_`O\!```!``(!`@(!`P`#0````@`!`0$!`@`"0$#W#/(.2
  796. XM_@S["_@)]@;U`_7_]OSX^?OW_O8"]@7W"/D*_`O_"P,*!@@)!0L"#/X,0```>
  797. X+#`#V0`#U`0L!0$#_#
  798. X``
  799. Xend
  800. Xsize 5726
  801. END_OF_FILE
  802. if test 8058 -ne `wc -c <'fonts/plstnd.fnt.uu'`; then
  803.     echo shar: \"'fonts/plstnd.fnt.uu'\" unpacked with wrong size!
  804. fi
  805. # end of 'fonts/plstnd.fnt.uu'
  806. fi
  807. if test -f 'fonts/plxtnd.idx.uu' -a "${1}" != "-c" ; then 
  808.   echo shar: Will not clobber existing file \"'fonts/plxtnd.idx.uu'\"
  809. else
  810. echo shar: Extracting \"'fonts/plxtnd.idx.uu'\" \(8444 characters\)
  811. sed "s/^X//" >'fonts/plxtnd.idx.uu' <<'END_OF_FILE'
  812. Xbegin 644 plxtnd.idx
  813. XM"[@``0`,`!X`*P`Y`$<`4@!C`&X`<P!\`(<`CP"=`*@`N`#$`-<`Y@#U`/T!R
  814. XM"`$0`1X!)@$O`3H!10%7`5\!:@%X`8,!C@&D`:D!M`&\`<H!U0'C`?,!_@(*$
  815. XM`A8"'@(O`CX"1@)4````````````````````````````````````````````'
  816. XM`````````````````````````````````````````````````````````````
  817. XM`````````````````````````````````````````````````````````````
  818. XM`````````````````````````````````````````````````````````````
  819. XM`````````````````````````````````````````````````````````````
  820. XM`````````````````````````````````````````````````````````````
  821. XM``````````````````````````````````````````````)C`F<":P)O`GT"M
  822. XM@P*.`I\"J`*X`L@"T`+E`O4"_0,&`Q0#(P,Q`T0#20-1`UT#;P-T`WT#A@.+2
  823. XM`Y`#F`.@`Z@#LP.[`\0#S0/6`^0#^P01```$*`0V!%@```1=````````````]
  824. XM``1E```$DP``!+$```2[```$PP``!.($YP``!.\%(057!8H%S`8;!GH&TP<A#
  825. XM!VL'AP?`!^D()@A6"&0```AX")$(J@B\",X```C@````````````````````\
  826. XM`````````````````````````````````````````````````````````````
  827. XM`````````````````````````````````````````````````````````````
  828. XM`````````````````````````````````````````````````````````````
  829. XM`````````````````````````````````````````````````````````````
  830. XM`````````````````````````````````````````````````````````````
  831. XM`````````````````````````````````````````````````````````````
  832. XM`````````````````````````````````````````````````````````````
  833. XM`````````````````````````````````````````````````````````````
  834. XM`````````````````````````````````````````````````````````````
  835. XM````````````````".L(]@D0"24)-PE%"5`):0ET"7D)A@F1"9D)IPFR"<H)B
  836. XMV@GU"@@*'PHG"C0*/`I*"E(*6PIF"G$*BPJ3"IX*K`JW"L(*W0KB"NT*]0L#\
  837. XM"PX+&0LQ"SP+3`M8"V`+=0N,"Y0+J`N["]$+_`P6##L,60QW#)8,O@S9#/0-F
  838. XM'0T\#6L-C0VL#<T-[PX7#C4.4`YS#I4.L`[6#OX````````````````/*```6
  839. XM```````````````````````````````````````````/,P]'#UL/;`^`#Y0/^
  840. XMGP^X#\4/T`_>#^D/[A`#$!`0)!`X$$P05Q!K$'80@Q"+$)D0H1"M$+@0TA#S@
  841. XM$081(!$U$4X18Q&`$8L1H!&K$<(1TA'Q$@42%!(I$CT21Q)9$G`2@!*6$J\2-
  842. XMQQ+@$O`3"A,=$S<351-T$X83G!._$],3]A0/%"@40A1?%'`4@A24%*D4O!37L
  843. XM%.T5!A4?`````````````!4W%5,5915^%94````````````````````````50
  844. XMIQ6K%:\5LQ7'%<X5WQ7Q%?H6#A8H%C`64!9J%G(6?1:+%IP6IQ:^%L,6RQ;;S
  845. XM%O@6_1<*%Q<7'!<A%RD7,1<Y%T073!=6%V`7:Q=Y%YX``!>\%\07S!?2%^88K
  846. XM"1@E&#L8;1BF````````&-\8\QD%&1`9+AE*&5H99AES&8(9CQF8&:`9J1FR'
  847. XM&<D9X!H!&AD`````````````````````````````````````````````````I
  848. XM```````````````````````:.1H^&D,:2!I-&E(:5QI<&F$:9AIK&G`:=1IZ1
  849. XM&G\:B1J3&IT:IQJR&KT:R!K3&MH:X1KH&N\;"!LA&SH;4QMJ&W\;FQNH&[,;P
  850. XMNAO"&\T`````````````&]@;[!OT&_L<`QP1'!D<(0`````<+!Q1'&X<@1R4H
  851. XM'*<<NAS2`````!S?'.X<^QT+'1\=-AU#'5,==1V!':4=YQY''G$>DP``````%
  852. XM`````````````````````````````````````````````````````````!ZD"
  853. XM'JP>N![('MP>\!\('RP?4!^$'Z@?RP``````````````````````````````#
  854. XM`````````````````````````````````````````````````````````````
  855. XM`````````````````````````````````````````````````````````````
  856. XM`````````````````````````````````````````````````````````````
  857. XM`````````````````````````````````````````````````````````````
  858. XM`````````````````````````````````````````````````````````````
  859. XM`````````````````````````````````````````````````````````````
  860. XM`````````````````````````````````````````````````````````````
  861. XM`````````````````````````````````````````````````````````````
  862. XM`````````````````````````````````````````````````````````````
  863. XM`````````````````````````````````````````````````````````````
  864. XM`````````````````````````````````````````````````````````````
  865. XM`````````````````````````````````````````````````````````````
  866. XM`````````````````````````````````````````````````````````````
  867. XM`````````````````````````````````````````````````````````````
  868. XM`````````````````````````````````````````````````````````````
  869. XM`````````````````````````````````````````````````````````````
  870. XM`````````````````````````````````````````````````````````````
  871. XM`````````````````````````````````````````````````````````````
  872. XM`````````````````````````````````````````````````````````````
  873. XM`````````````````````````````````````````````````````````````
  874. XM`````````````````````````````````````````````````````````````
  875. XM`````````````````````````````````````````````````````````````
  876. XM`````````````````````````````````````````````````````````````
  877. XM`````````````````````````````````````````````````````````````
  878. XM`````````````````````````````````````````````````````````````
  879. XM`````````````````````````````````````````````````````````````
  880. XM`````````````````````````````````````````````````````````````
  881. XM`````````````````````````````````````````````````````````````
  882. XM`````````````````````````````````````````````````````````````
  883. XM`````````````````````````````````````````````````````````````
  884. XM`````````````````````````````````````````````````````````````
  885. XM`````````````````````````````````````````````````````````````
  886. XM`````````````````````````````````````````````````````````````
  887. XM`````````````````````````````````````````````````````````````
  888. XM`````````````````````````````````````````````````````````````
  889. XM`````````````````````````````````````````````````````````````
  890. XM`````````````````````````````````````````````````````````````
  891. XM`````````````````````````````````````````````````````````````
  892. XM`````````````````````````````````````````````````````````````
  893. XM`````````````````````````````````````````````````````````````
  894. XM`````````````````````````````````````````````````````````````
  895. XM`````````````````````````````````````````````````````````````
  896. XM`````````````````````````````````````````````````````````````
  897. XM`````````````````````````````````````````````````````````````
  898. XM`````````````````````````````````````````````````````````````
  899. XM`````````````````````````````````````````````````````````````
  900. XM`````````````````````````````````````````````````````````````
  901. XM````````````````````````````````````````````````````````'^P@K
  902. XM`"`O(%$@<2")()\@R2#F(/0A"B$G(3<A5R%N(9PANR'](BPB4")B(GLBC"*F<
  903. XM(KTBTR+E(ODC*",X(TDC82-S(Y`CRB/8(_4D!B0F)#TD8R21)*@DQR3=).\E6
  904. XM$B5$)5LEAB6S)<<E\B86)C8F3B9D)I`FK2:[)M(F[R;_)Q\G-B=B)W\GOB?J[
  905. XM*`\H(2@\*$TH9RA^*)0HI@``````````````````````````````````````8
  906. XM```````````````````````HUBC_*2(I0"EF*8<IGRG=*?LJ#RHJ*D<J52J#T
  907. XM*J$JQRKM*Q`K*2M+*UTK>RN,*Z8KO2O5*^<L$2Q,+&HLF"RZ+-LL_2TK+3PM;
  908. XM6RUT+9(MK"W;+?TN%2XV+ELN;2Z.+K4NSB[R+R`O22]O+XHOMB_2+_<P)#!%_
  909. XM,&$P@S"G,+LP\3$8,3HQ9C&),:4QPS'7,?XR&C)%,G$RG#*],NHS#3,R,VHSA
  910. XMI```,[(SS3/Z-"8`````-$,T<C2Y-.\U)S5_-=DU[S7S-?<U^S8E-C(V83:2E
  911. XM-J$VRC;\-QTW7C>0-Y@WHC>P-\`WT3?S-_LX"3@9."0X*3@_.%4X8SAQ.(TXW
  912. XMJ3BO.+4XNCC".,<XSSC:..4X[3CU.08Y#CD9.20Y*CDP.3PY2#E?.7DY@SF,R
  913. XM.94YJ3FS.;TYQSG1.=TY[#G[.@HZ&3HK.C@Z13I2.E\ZC3J>.JHZS#L`.QP[S
  914. XM/CMQ.ZL[USOE/!4\-3QO```\?3RE/-0\\3T//3`]3CUN/9P]PSWD/?X^&SXIJ
  915. XM/EL^C3Z</JL^N@``/LD^\S\H/T@_>C^L/]Y`"4`I0$Q`;T"5``````````!`(
  916. XMQT#50.E`_4$C04E!;4&!095!L$'$0=A""T(G0G]"Z```````````````````F
  917. XM`````````````````````````````````````````````````````````````
  918. XM````````````0PA#%D,J0SY#8$.&0ZI#OD/20^U$`4051#M$5T2O10H`````K
  919. XM``````````````````````````````````````````!%845X19%%KT7-1=U%F
  920. XM[4851CU&7T:!1I$`````````````````````````````````````````````.
  921. XM`````````````````````````````````````````````````````````````
  922. XM`````````````````````````````````````````````````````````````
  923. XM`````````````````````````````````````````````````````````````
  924. XM`````````$;,1N)'$$<X1UI'=T>.1[Q'U$?>1_1(#$@<2#A(3DAX2)5(QTCKO
  925. XM21A)*4E#25-);TF!290`````````````````````````````````````````:
  926. XM``````````````````````!)JDG22AI*14IR2J5*U4L,2T5+:$N,2\E+\TPF`
  927. XM3$Y,<DRI3-9-&4T_36=-D$VV3>%.%TY#````````````````````````````9
  928. XM````````````````````````````````````3G%.ETZ]3M]/!4\K3T5/=T^2E
  929. XM3ZQ/QD_>3^A0%%`O4%50>U"A4+A0[%#^41E1*5%%45=1:@``````````````G
  930. XM`````````````````````````````````````````````````%&`4:-1O%'4W
  931. XM4?=2$%(M4E52=5**4J12Q5+84P=3*5-(4VA3C5.G4[]3U5/R5`M4,51=5'\`7
  932. XM````````````````````````````````````````````````````5*=4JU2O]
  933. XM5+-4WU3M51%50U5758Y5SE7<5B)68E9T5HY6L%;:5O17,%=*5V17K5?B5^Q8U
  934. XM!E@@6$E84UAE6'=8A%B<````````````````````````````````````````F
  935. XM`````%B\6,!8Q%C(6/19!5DQ6659<5F:6<I9ZEHK6EM:8UIM6GI:BEJ=6L%:?
  936. XMRUK56PY;.5L^6U1;:EMU6WI;@EN*6Y);H```````````````````````````3
  937. XM`````````````````````````````%NP6\1;Y5P47"1<15Q=7*9<U5SR71E=(
  938. XM1EUA78%=GEW,7>->`EXD7C9>4%Z"7IE>ME[47O1?&E\[7V9?A5^N7^L`````L
  939. XM`````````````````````````````````````````````````````````````
  940. XM`````````````````````````````````````````````````````````````
  941. XM````````````````````````````````````````````````````````8!I@:
  942. XM0V!U8)Q@K&#$8.5A(F%.86MADF&Z8=)A\F(/8C5B3&)R8I!BHF*Z8O!C!V,@V
  943. XM8SYC7F.`8YUCQ&/?9`-D.```````````````````````````````````````Q
  944. XM`````````````````````````````````````````````````````````````
  945. XM`````````````````````````````````````````````````````````````
  946. X1`````````````````````````
  947. X``
  948. Xend
  949. Xsize 6002
  950. END_OF_FILE
  951. if test 8444 -ne `wc -c <'fonts/plxtnd.idx.uu'`; then
  952.     echo shar: \"'fonts/plxtnd.idx.uu'\" unpacked with wrong size!
  953. fi
  954. # end of 'fonts/plxtnd.idx.uu'
  955. fi
  956. if test -f 'unix/postscript.c' -a "${1}" != "-c" ; then 
  957.   echo shar: Will not clobber existing file \"'unix/postscript.c'\"
  958. else
  959. echo shar: Extracting \"'unix/postscript.c'\" \(9503 characters\)
  960. sed "s/^X//" >'unix/postscript.c' <<'END_OF_FILE'
  961. X/* This file contains the PostScript device dependent subroutines for */
  962. X/* use with plplot. */
  963. X
  964. X#include "plplot.h"
  965. X#include <stdio.h>
  966. X
  967. X#define LINELENGTH      70
  968. X#define COPIES          1
  969. X#define XSIZE           540
  970. X#define YSIZE           720
  971. X#define XPSSIZE         3000
  972. X#define YPSSIZE         2250
  973. X#define XOFFSET         576
  974. X#define YOFFSET         36
  975. X#define XSCALE          100
  976. X#define YSCALE          100
  977. X#define LINESCALE       100
  978. X#define ANGLE           90
  979. X#define PSX             XPSSIZE-1
  980. X#define PSY             YPSSIZE-1
  981. X
  982. Xchar *getdate();
  983. Xstatic int numpages = 0;
  984. Xstatic int linepos = 0;
  985. X
  986. Xstatic FILE *OutFile;
  987. Xstatic PLINT orient;
  988. Xstatic PLINT select=0;
  989. Xstatic char FileName[80];
  990. X
  991. Xvoid pssetup(xdpi, ydpi, xwid, ywid)
  992. XPLINT xwid, ywid;
  993. XPLFLT xdpi, ydpi;
  994. X{
  995. X}
  996. X
  997. Xvoid psselect(ori, name)
  998. XPLINT ori;
  999. Xchar *name;
  1000. X{
  1001. X   orient = ori;
  1002. X   strncpy(FileName,name,sizeof(FileName)-1);
  1003. X   FileName[sizeof(FileName)-1] = '\0';
  1004. X   select = 1;
  1005. X}
  1006. X
  1007. X
  1008. X/* Open file.  Set up for graphics. */
  1009. Xvoid psinit()
  1010. X{
  1011. X      char line[80];
  1012. X
  1013. X      if(!select) {
  1014. X         printf("Landscape or portrait orientation? (0 or 1) ");
  1015. X         fgets(line,sizeof(line),stdin);
  1016. X         if(sscanf(line,"%d",&orient) != 1)
  1017. X            orient = 0;
  1018. X      }
  1019. X
  1020. X   /* setpxl() sets the dots/mm in the x and y directions */
  1021. X      setpxl(11.81,11.81);         /* 300 dpi */
  1022. X
  1023. X   /* setphy() sets the device coordinates. These are integer */
  1024. X   /* values. Set up for landscape orientation (long axis of page in the */
  1025. X   /* x direction). Origin is in the lower left hand corner. */
  1026. X      if(!orient)
  1027. X         setphy(0,PSX,0,PSY);
  1028. X      else
  1029. X         setphy(0,PSY,0,PSX);
  1030. X
  1031. X   /* Set default pen color using scol(color). */
  1032. X   /* Any default pen color can be used but a black pen is probably best. */
  1033. X      scol(1);
  1034. X
  1035. X   /* Set default pen width using swid(width) */
  1036. X      swid(1);
  1037. X
  1038. X   /* Set device interaction mode using smod(mode). Set mode to 0 for */
  1039. X   /* a noninteractive device, Unless you are writing your */
  1040. X   /* own Amiga screen driver mode should be 0. */
  1041. X      smod(0);
  1042. X
  1043. X   /* Well that's all the information plplot needs. Let's prompt for a */
  1044. X   /* graphics file name. */
  1045. X      for(;;) {
  1046. X         if(!select) {
  1047. X            printf("Enter PostScript graphics file name. ");
  1048. X            fgets(line,sizeof(line),stdin);
  1049. X            if(sscanf(line,"%s",FileName)!=1)
  1050. X               continue;
  1051. X         }
  1052. X
  1053. X         if (!(OutFile = fopen(FileName,"w"))) {
  1054. X            fprintf(stderr,"Can't open %s.\n",FileName);
  1055. X            select = 0;
  1056. X         }
  1057. X         else
  1058. X            break;
  1059. X      }
  1060. X      select = 0;
  1061. X
  1062. X  /* Header comments into PostScript file */
  1063. X
  1064. X      fprintf(OutFile,"%%!PS-Adobe-2.0 EPSF-2.0\n");
  1065. X      fprintf(OutFile,"%%%%BoundingBox: 36 36 540 720\n");
  1066. X      fprintf(OutFile,"%%%%Title: %s\n", FileName);
  1067. X      fprintf(OutFile,"%%%%Creator: PLPLOT Version 2.0\n");
  1068. X      fprintf(OutFile,"%%%%CreationDate: %s\n", getdate());
  1069. X      fprintf(OutFile,"%%%%Pages: (atend)\n");
  1070. X      fprintf(OutFile,"%%%%EndComments\n\n");
  1071. X
  1072. X  /* Definitions */
  1073. X
  1074. X      fprintf(OutFile, "/PSSave save def\n");      /* save VM state */
  1075. X      fprintf(OutFile, "/PSDict 200 dict def\n");  /* define a dictionary */
  1076. X      fprintf(OutFile, "PSDict begin\n");          /* start using it */
  1077. X      fprintf(OutFile, "/@restore /restore load def\n");
  1078. X      fprintf(OutFile, "/restore\n");
  1079. X      fprintf(OutFile, "   {vmstatus pop\n");
  1080. X      fprintf(OutFile, "    dup @VMused lt {pop @VMused} if\n");
  1081. X      fprintf(OutFile, "    exch pop exch @restore /@VMused exch def\n");
  1082. X      fprintf(OutFile, "   } def\n");
  1083. X      fprintf(OutFile, "/@pri\n");
  1084. X      fprintf(OutFile, "   {\n");
  1085. X      fprintf(OutFile, "    ( ) print\n");
  1086. X      fprintf(OutFile, "    (                                       ) cvs print\n");
  1087. X      fprintf(OutFile, "   } def\n");
  1088. X      fprintf(OutFile, "/@copies\n");   /* n @copies - */
  1089. X      fprintf(OutFile, "   {\n");
  1090. X      fprintf(OutFile, "    /#copies exch def\n");
  1091. X      fprintf(OutFile, "   } def\n");
  1092. X      fprintf(OutFile, "/@start\n");    /* - @start -  -- start everything */
  1093. X      fprintf(OutFile, "   {\n");
  1094. X      fprintf(OutFile, "    vmstatus pop /@VMused exch def pop\n");
  1095. X      fprintf(OutFile, "   } def\n");
  1096. X      fprintf(OutFile, "/@end\n");      /* - @end -  -- finished */
  1097. X      fprintf(OutFile, "   {(VM Used: ) print @VMused @pri\n");
  1098. X      fprintf(OutFile, "    (. Unused: ) print vmstatus @VMused sub @pri pop pop\n");
  1099. X      fprintf(OutFile, "    (\\n) print flush\n");
  1100. X      fprintf(OutFile, "    end\n");
  1101. X      fprintf(OutFile, "    PSSave restore\n");
  1102. X      fprintf(OutFile, "   } def\n");
  1103. X      fprintf(OutFile, "/bop\n");       /* bop -  -- begin a new page */
  1104. X      fprintf(OutFile, "   {\n");
  1105. X      fprintf(OutFile, "    /SaveImage save def\n");
  1106. X      fprintf(OutFile, "   } def\n");
  1107. X      fprintf(OutFile, "/eop\n");       /* - eop -  -- end a page */
  1108. X      fprintf(OutFile, "   {\n");
  1109. X      fprintf(OutFile, "    showpage\n");
  1110. X      fprintf(OutFile, "    SaveImage restore\n");
  1111. X      fprintf(OutFile, "   } def\n");
  1112. X      fprintf(OutFile, "/@line\n");     /* set line parameters */
  1113. X      fprintf(OutFile, "   {0 setlinecap\n");
  1114. X      fprintf(OutFile, "    0 setlinejoin\n");
  1115. X      fprintf(OutFile, "    1 setmiterlimit\n");
  1116. X      fprintf(OutFile, "   } def\n");
  1117. X                        /* d @hsize -  horizontal clipping dimension */
  1118. X      fprintf(OutFile, "/@hsize   {/hs exch def} def\n");
  1119. X      fprintf(OutFile, "/@vsize   {/vs exch def} def\n");
  1120. X                        /* d @hoffset - shift for the plots */
  1121. X      fprintf(OutFile, "/@hoffset {/ho exch def} def\n");
  1122. X      fprintf(OutFile, "/@voffset {/vo exch def} def\n");
  1123. X                        /* s @hscale - scale factors */
  1124. X      fprintf(OutFile, "/@hscale  {100 div /hsc exch def} def\n");
  1125. X      fprintf(OutFile, "/@vscale  {100 div /vsc exch def} def\n");
  1126. X                        /* s @lscale - linewidth scale factor */
  1127. X      fprintf(OutFile, "/@lscale  {100 div /lin exch def} def\n");
  1128. X                        /* a @angle - rotation angle */
  1129. X      fprintf(OutFile, "/@angle   {/ang exch def} def\n");
  1130. X      fprintf(OutFile, "/@SetPlot\n");  /* setup user specified offsets, */
  1131. X      fprintf(OutFile, "   {\n");       /* scales, sizes for clipping    */
  1132. X      fprintf(OutFile, "    ho vo translate\n");
  1133. X      fprintf(OutFile, "    XScale YScale scale\n");
  1134. X      fprintf(OutFile, "    ang rotate\n");
  1135. X      fprintf(OutFile, "    lin lw mul setlinewidth\n");
  1136. X      fprintf(OutFile, "   } def\n");
  1137. X      fprintf(OutFile, "/XScale\n");    /* setup x scale */
  1138. X      fprintf(OutFile, "   {hsc hs mul %d div} def\n", YPSSIZE);
  1139. X      fprintf(OutFile, "/YScale\n");    /* setup y scale */
  1140. X      fprintf(OutFile, "   {vsc vs mul %d div} def\n", XPSSIZE);
  1141. X      fprintf(OutFile, "/lw 3 def\n");  /* default line width */
  1142. X      fprintf(OutFile, "/M {moveto} def\n");
  1143. X      fprintf(OutFile, "/D {lineto} def\n");
  1144. X      fprintf(OutFile, "/S {stroke} def\n");
  1145. X      fprintf(OutFile, "/Z {stroke newpath} def\n");
  1146. X      fprintf(OutFile, "end\n\n");      /* end of dictionary definition */
  1147. X
  1148. X  /* Set up the plots */
  1149. X
  1150. X      fprintf(OutFile, "PSDict begin\n");
  1151. X      fprintf(OutFile, "@start\n");
  1152. X      fprintf(OutFile, "%d @copies\n", COPIES);
  1153. X      fprintf(OutFile, "@line\n");
  1154. X      fprintf(OutFile, "%d @hsize\n", XSIZE);
  1155. X      fprintf(OutFile, "%d @vsize\n", YSIZE);
  1156. X      fprintf(OutFile, "%d @hoffset\n", XOFFSET);
  1157. X      fprintf(OutFile, "%d @voffset\n", YOFFSET);
  1158. X      fprintf(OutFile, "%d @hscale\n", XSCALE);
  1159. X      fprintf(OutFile, "%d @vscale\n", YSCALE);
  1160. X      fprintf(OutFile, "%d @lscale\n", LINESCALE);
  1161. X      fprintf(OutFile, "%d @angle\n", ANGLE);
  1162. X      fprintf(OutFile, "@SetPlot\n\n");
  1163. X      fprintf(OutFile, "bop\n");
  1164. X      fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
  1165. X}
  1166. X
  1167. X/* Sets the printer to text mode */
  1168. Xvoid pstext()
  1169. X{
  1170. X}
  1171. X
  1172. X/* Sets the printer to graphics mode */
  1173. Xvoid psgraph()
  1174. X{
  1175. X}
  1176. X
  1177. X/* Form feed */
  1178. Xvoid psclear()
  1179. X{
  1180. X     fprintf(OutFile," S\neop\nbop\n");
  1181. X}
  1182. X
  1183. Xstatic PLINT xlast, ylast;
  1184. X
  1185. Xvoid pspage()
  1186. X{
  1187. X     numpages++;
  1188. X     fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
  1189. X     linepos = 0;
  1190. X     xlast = -100000; ylast = -100000;
  1191. X}
  1192. X
  1193. X/* May put something here someday */
  1194. Xvoid pscolor(colour)
  1195. Xint colour;
  1196. X{
  1197. X}
  1198. X
  1199. X/* I don't know what to put here - Tony */
  1200. Xvoid pswidth()
  1201. X{
  1202. X}
  1203. X
  1204. Xvoid psline(x1,y1,x2,y2)
  1205. XPLINT x1,y1,x2,y2;
  1206. X{
  1207. X      if (linepos + 21 > LINELENGTH) {
  1208. X          putc('\n', OutFile);
  1209. X          linepos = 0;
  1210. X      } else
  1211. X          putc(' ', OutFile);
  1212. X
  1213. X      if(!orient) {
  1214. X         if(x1 == xlast && y1 == ylast)
  1215. X            fprintf(OutFile, "%ld %ld D", x2, y2);
  1216. X         else
  1217. X            fprintf(OutFile, "Z %ld %ld M %ld %ld D", x1, y1, x2, y2);
  1218. X      }
  1219. X      else {
  1220. X         if(x1 == xlast && y1 == ylast)
  1221. X            fprintf(OutFile, "%ld %ld D", PSX-y2, x2);
  1222. X         else
  1223. X            fprintf(OutFile, "Z %ld %ld M %ld %ld D", PSX-y1,x1,PSX-y2,x2);
  1224. X      }
  1225. X
  1226. X      xlast = x2;
  1227. X      ylast = y2;
  1228. X      linepos += 21;
  1229. X}
  1230. X
  1231. X/* Close graphics file */
  1232. Xvoid pstidy()
  1233. X{
  1234. X      fprintf(OutFile," S\neop\n");
  1235. X      numpages++;
  1236. X      fprintf(OutFile, "@end\n\n");
  1237. X      fprintf(OutFile, "%%%%Trailer\n");
  1238. X      fprintf(OutFile, "%%%%Pages: %d\n", numpages);
  1239. X      fclose(OutFile);
  1240. X      numpages = 0;
  1241. X      linepos = 0;
  1242. X}
  1243. X
  1244. X/* Get the date and time */
  1245. Xstatic char *getdate()
  1246. X{
  1247. X        int len;
  1248. X        long t, time();
  1249. X        char *p, *ctime();
  1250. X
  1251. X        t = time((long *) 0);
  1252. X        p = ctime(&t);
  1253. X        len = strlen(p);
  1254. X        *(p + len - 1) = '\0';  /* zap the newline character */
  1255. X        return p;
  1256. X}
  1257. END_OF_FILE
  1258. if test 9503 -ne `wc -c <'unix/postscript.c'`; then
  1259.     echo shar: \"'unix/postscript.c'\" unpacked with wrong size!
  1260. fi
  1261. # end of 'unix/postscript.c'
  1262. fi
  1263. echo shar: End of archive 6 \(of 12\).
  1264. cp /dev/null ark6isdone
  1265. MISSING=""
  1266. for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
  1267.     if test ! -f ark${I}isdone ; then
  1268.     MISSING="${MISSING} ${I}"
  1269.     fi
  1270. done
  1271. if test "${MISSING}" = "" ; then
  1272.     echo You have unpacked all 12 archives.
  1273.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1274. else
  1275.     echo You still need to unpack the following archives:
  1276.     echo "        " ${MISSING}
  1277. fi
  1278. ##  End of shell archive.
  1279. exit 0
  1280. -- 
  1281. Submissions to comp.sources.amiga and comp.binaries.amiga should be sent to:
  1282.     amiga@cs.odu.edu    
  1283. or    amiga@xanth.cs.odu.edu    ( obsolescent mailers may need this address )
  1284. or    ...!uunet!xanth!amiga    ( very obsolescent mailers need this address )
  1285.  
  1286. Comments, questions, and suggestions s should be addressed to ``amiga-request''
  1287. (only use ``amiga'' for submissions) at the above addresses.
  1288.